package com.naiterui.ehp.bs.b2c.product.service;

import java.util.List;
import java.util.Map;
import java.util.Set;

import com.naiterui.ehp.bp.bo.b2c.SkuUsageBO;
import com.naiterui.ehp.bp.bo.b2c.cms.CmsSkuBO;
import com.naiterui.ehp.bp.bo.b2c.cms.ProductBO;
import com.naiterui.ehp.bp.support.exception.BusinessException;
import com.naiterui.ehp.bs.b2c.common.bo.product.SkuBO;
import com.naiterui.ehp.bs.b2c.product.exception.ProductBusinessException;

public interface ISkuService {
    /**
     * 获取购物车商品信息
     *
     * @param skuIds set结合
     *
     * @return map不会为nul，但可能为空
     */
    Map<Long, SkuBO> cartSkuList(Set<Long> skuIds);

    /**
     * 保存sku信息
     *
     * @param operator 操作人
     * @param sku      param
     */
    void saveOrUpdate(String operator, CmsSkuBO sku, Long thirdId) throws ProductBusinessException;

    void updateDefault(Long productId, Long skuId, String operator);

    List<SkuBO> getListBySkuIds(Set<Long> skuIds);

    void saveOrUpdateProduct(String operator, ProductBO product) throws ProductBusinessException;

    /**
     * 批量获取sku价格
     *
     * @param skuIds
     * @return
     */
    Map<Long, Integer> getSkuPrice(Set<Long> skuIds);

    /**
     * 修改该sku的默认用法用量和安全用量
     * 
     * @param skuUsageBO
     * @throws BusinessException
     */
    void updateSkuUsage(SkuUsageBO skuUsageBO) throws BusinessException;
}
